package com.ppg.basic.proxy;

import java.lang.reflect.Proxy;

public class ProxyMain {


    // https://www.cnblogs.com/lonecloud/p/9158668.html

    public static void main(String[] args) {

        Subject subject = new RealSubject();

        JdkDynamicProxyHandler handler = new JdkDynamicProxyHandler(subject);


        Subject proxy = (Subject) Proxy.newProxyInstance(handler.getClass().getClassLoader(), subject.getClass().getInterfaces(), handler);


        String say = proxy.say();
        System.out.println(say);


        proxy.method();


        /**
         * 为什么 jdk的动态代理 需要实现接口呢
         *
         *      通过生成的代理类分析， 代理类继承了Proxy类；java只支持单继承，所以需要实现接口来实现；
         *
         *
         *
         *
         *
         */
    }
}
